package cn.fl.customer.transform;

import java.util.ArrayList;
import java.util.List;

import cn.fl.customer.vo.FilFinanceCashVO;
import cn.cmm.base.framework.utils.CollectionUtils;
import fl.customer.facade.customer.dto.FilFinanceCashDTO;

/**
 * @Description: 资信报表---现金流量表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class FilFinanceCashVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto FilFinanceCashDTO
	 * @return FilFinanceCashVO
	 */
	public static FilFinanceCashVO toVO(FilFinanceCashDTO dto) {
		FilFinanceCashVO  vo = null;
		if (dto != null) { 
			vo = new FilFinanceCashVO();
			vo.setId(dto.getId());
			vo.setBelongDate(dto.getBelongDate());//所属时间
			vo.setReporttype(dto.getReporttype());//报表类型
			vo.setReportsubtype(dto.getReportsubtype());//报表类型细分
			vo.setAuditinstitute(dto.getAuditinstitute());//审计事务所名称
			vo.setAuditstaff(dto.getAuditstaff());//审计人员名称
			vo.setAuditime(dto.getAuditime());//审计时间
			vo.setProvideServiceCash(dto.getProvideServiceCash());//销售商品，提供劳务收到的现金
			vo.setTaxReturn(dto.getTaxReturn());//收到的税费返还
			vo.setOtherOperate(dto.getOtherOperate());//收到的其他与经营活动有关的现金
			vo.setOperateIntoTotal(dto.getOperateIntoTotal());//经营活动产生的现金流入小计
			vo.setProvidePaymentCash(dto.getProvidePaymentCash());//购买商品，接受劳务支付的现金
			vo.setPaymentStaffCash(dto.getPaymentStaffCash());//支付给职工以及为职工支付的现金
			vo.setPayItemTax(dto.getPayItemTax());//支付的各项税费
			vo.setPayProvideCash(dto.getPayProvideCash());//支付的其他与经营活动有关的现金
			vo.setOperateOutTotal(dto.getOperateOutTotal());//经营活动---现金流出小计
			vo.setOperateNet(dto.getOperateNet());//经营活动产生的现金流量净额
			vo.setInvestCash(dto.getInvestCash());//收回投资所收到的现金
			vo.setInvestIncome(dto.getInvestIncome());//取得投资收益所收到的现金
			vo.setAssetsCash(dto.getAssetsCash());//处置固定资产无形资产其他资产收到的现金净额
			vo.setSubsiCash(dto.getSubsiCash());//处置子公司及其他营业单位收到的现金净额
			vo.setOtherInvest(dto.getOtherInvest());//收到的其他与投资活动有关的现金
			vo.setInvestInto(dto.getInvestInto());//投资--现金流入小计
			vo.setAssetPay(dto.getAssetPay());//构建固定资产无形资产其他资产支付的现金
			vo.setInvestPay(dto.getInvestPay());//投资所支付的现金
			vo.setSubsiCashInvest(dto.getSubsiCashInvest());//取得子公司及其他营业单位支付的现金净额
			vo.setOtherInvestPay(dto.getOtherInvestPay());//支付的其他与投资活动有关的现金
			vo.setInvestOut(dto.getInvestOut());//投资---现金流出小计 
			vo.setInvestNet(dto.getInvestNet());//投资活动产生的现金流量净额
			vo.setAbsorbInvest(dto.getAbsorbInvest());//吸收投资收到的现金
			vo.setLoan(dto.getLoan());//借款所收到的现金
			vo.setOtherPrepareIn(dto.getOtherPrepareIn());//收到的其他与筹资活动有关的现金
			vo.setPrepareIncomTotal(dto.getPrepareIncomTotal());//筹资---现金流入小计
			vo.setDebtPay(dto.getDebtPay());//偿还债务所支付的现金
			vo.setInterestPay(dto.getInterestPay());//分配股利利润或偿还利息支付的现金
			vo.setOtherPreparePay(dto.getOtherPreparePay());//支付的其他与筹资活动有关的现金
			vo.setPrepareOutTotal(dto.getPrepareOutTotal());//筹资----现金流出小计 
			vo.setPrepareNet(dto.getPrepareNet());//筹资活动产生的现金流量净额
			vo.setChangeRate(dto.getChangeRate());//汇率变动对现金的影响
			vo.setCashNet(dto.getCashNet());//现金及现金等价物增长净额
			vo.setBeginCashBalance(dto.getBeginCashBalance());//期初现金及现金等价物余额
			vo.setEndCashBalance(dto.getEndCashBalance());//期末现金及现金等价物余额
			vo.setNet(dto.getNet());//净利润
			vo.setAssetReduce(dto.getAssetReduce());//计提的资产减值准备
			vo.setFixedDep(dto.getFixedDep());//固定资产折旧
			vo.setAmortizeAsset(dto.getAmortizeAsset());//无形资产摊销
			vo.setPrepaidFee(dto.getPrepaidFee());//长期待摊费用摊销 
			vo.setPrepaidReduce(dto.getPrepaidReduce());//待摊费用减少
			vo.setHoldAdd(dto.getHoldAdd());//预提费用增加
			vo.setAssetLoss(dto.getAssetLoss());//处理固定资产无形资产其他资产的损失
			vo.setFixedLoss(dto.getFixedLoss());//固定资产报废损失
			vo.setFairValueLoss(dto.getFairValueLoss());//公允价值变动损失
			vo.setFinanceFee(dto.getFinanceFee());//财务费用
			vo.setInvestLoss(dto.getInvestLoss());//投资损失
			vo.setDeferr(dto.getDeferr());//递延税款贷项
			vo.setDeferrIncrease(dto.getDeferrIncrease());//递延所得税负债增加
			vo.setStockReduce(dto.getStockReduce());//存货的减少
			vo.setOperateIncome(dto.getOperateIncome());//经营性应收项目减少
			vo.setOperatePay(dto.getOperatePay());//经营性应付项目的增加
			vo.setOthe(dto.getOthe());//其他
			vo.setOperateNetD(dto.getOperateNetD());//经营活动产生的现金流量净额（D）
			vo.setDebtToCapital(dto.getDebtToCapital());//债务转为资本
			vo.setYearBond(dto.getYearBond());//一年内到期的可转换公司债券
			vo.setFinance(dto.getFinance());//融资租入固定资产
			vo.setOthe2(dto.getOthe2());//其他2
			vo.setEndBalance(dto.getEndBalance());//现金的期末余额
			vo.setBeginBalance(dto.getBeginBalance());//现金的期初余额
			vo.setThingEndBalance(dto.getThingEndBalance());//现金等价物的期末余额
			vo.setThingBeginBalance(dto.getThingBeginBalance());//现金等价物的期初余额
			vo.setCashIncrease(dto.getCashIncrease());//现金及现金等价物净增加额
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setCstId(dto.getCstId());//客户ID

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo FilFinanceCashVO
	 * @return FilFinanceCashDTO
	 */
	public static FilFinanceCashDTO toDTO(FilFinanceCashVO vo) {
		FilFinanceCashDTO dto = null;
		if (vo != null) {
			dto = new FilFinanceCashDTO();
			dto.setId(vo.getId());
			dto.setBelongDate(vo.getBelongDate());//所属时间
			dto.setReporttype(vo.getReporttype());//报表类型
			dto.setReportsubtype(vo.getReportsubtype());//报表类型细分
			dto.setAuditinstitute(vo.getAuditinstitute());//审计事务所名称
			dto.setAuditstaff(vo.getAuditstaff());//审计人员名称
			dto.setAuditime(vo.getAuditime());//审计时间
			dto.setProvideServiceCash(vo.getProvideServiceCash());//销售商品，提供劳务收到的现金
			dto.setTaxReturn(vo.getTaxReturn());//收到的税费返还
			dto.setOtherOperate(vo.getOtherOperate());//收到的其他与经营活动有关的现金
			dto.setOperateIntoTotal(vo.getOperateIntoTotal());//经营活动产生的现金流入小计
			dto.setProvidePaymentCash(vo.getProvidePaymentCash());//购买商品，接受劳务支付的现金
			dto.setPaymentStaffCash(vo.getPaymentStaffCash());//支付给职工以及为职工支付的现金
			dto.setPayItemTax(vo.getPayItemTax());//支付的各项税费
			dto.setPayProvideCash(vo.getPayProvideCash());//支付的其他与经营活动有关的现金
			dto.setOperateOutTotal(vo.getOperateOutTotal());//经营活动---现金流出小计
			dto.setOperateNet(vo.getOperateNet());//经营活动产生的现金流量净额
			dto.setInvestCash(vo.getInvestCash());//收回投资所收到的现金
			dto.setInvestIncome(vo.getInvestIncome());//取得投资收益所收到的现金
			dto.setAssetsCash(vo.getAssetsCash());//处置固定资产无形资产其他资产收到的现金净额
			dto.setSubsiCash(vo.getSubsiCash());//处置子公司及其他营业单位收到的现金净额
			dto.setOtherInvest(vo.getOtherInvest());//收到的其他与投资活动有关的现金
			dto.setInvestInto(vo.getInvestInto());//投资--现金流入小计
			dto.setAssetPay(vo.getAssetPay());//构建固定资产无形资产其他资产支付的现金
			dto.setInvestPay(vo.getInvestPay());//投资所支付的现金
			dto.setSubsiCashInvest(vo.getSubsiCashInvest());//取得子公司及其他营业单位支付的现金净额
			dto.setOtherInvestPay(vo.getOtherInvestPay());//支付的其他与投资活动有关的现金
			dto.setInvestOut(vo.getInvestOut());//投资---现金流出小计 
			dto.setInvestNet(vo.getInvestNet());//投资活动产生的现金流量净额
			dto.setAbsorbInvest(vo.getAbsorbInvest());//吸收投资收到的现金
			dto.setLoan(vo.getLoan());//借款所收到的现金
			dto.setOtherPrepareIn(vo.getOtherPrepareIn());//收到的其他与筹资活动有关的现金
			dto.setPrepareIncomTotal(vo.getPrepareIncomTotal());//筹资---现金流入小计
			dto.setDebtPay(vo.getDebtPay());//偿还债务所支付的现金
			dto.setInterestPay(vo.getInterestPay());//分配股利利润或偿还利息支付的现金
			dto.setOtherPreparePay(vo.getOtherPreparePay());//支付的其他与筹资活动有关的现金
			dto.setPrepareOutTotal(vo.getPrepareOutTotal());//筹资----现金流出小计 
			dto.setPrepareNet(vo.getPrepareNet());//筹资活动产生的现金流量净额
			dto.setChangeRate(vo.getChangeRate());//汇率变动对现金的影响
			dto.setCashNet(vo.getCashNet());//现金及现金等价物增长净额
			dto.setBeginCashBalance(vo.getBeginCashBalance());//期初现金及现金等价物余额
			dto.setEndCashBalance(vo.getEndCashBalance());//期末现金及现金等价物余额
			dto.setNet(vo.getNet());//净利润
			dto.setAssetReduce(vo.getAssetReduce());//计提的资产减值准备
			dto.setFixedDep(vo.getFixedDep());//固定资产折旧
			dto.setAmortizeAsset(vo.getAmortizeAsset());//无形资产摊销
			dto.setPrepaidFee(vo.getPrepaidFee());//长期待摊费用摊销 
			dto.setPrepaidReduce(vo.getPrepaidReduce());//待摊费用减少
			dto.setHoldAdd(vo.getHoldAdd());//预提费用增加
			dto.setAssetLoss(vo.getAssetLoss());//处理固定资产无形资产其他资产的损失
			dto.setFixedLoss(vo.getFixedLoss());//固定资产报废损失
			dto.setFairValueLoss(vo.getFairValueLoss());//公允价值变动损失
			dto.setFinanceFee(vo.getFinanceFee());//财务费用
			dto.setInvestLoss(vo.getInvestLoss());//投资损失
			dto.setDeferr(vo.getDeferr());//递延税款贷项
			dto.setDeferrIncrease(vo.getDeferrIncrease());//递延所得税负债增加
			dto.setStockReduce(vo.getStockReduce());//存货的减少
			dto.setOperateIncome(vo.getOperateIncome());//经营性应收项目减少
			dto.setOperatePay(vo.getOperatePay());//经营性应付项目的增加
			dto.setOthe(vo.getOthe());//其他
			dto.setOperateNetD(vo.getOperateNetD());//经营活动产生的现金流量净额（D）
			dto.setDebtToCapital(vo.getDebtToCapital());//债务转为资本
			dto.setYearBond(vo.getYearBond());//一年内到期的可转换公司债券
			dto.setFinance(vo.getFinance());//融资租入固定资产
			dto.setOthe2(vo.getOthe2());//其他2
			dto.setEndBalance(vo.getEndBalance());//现金的期末余额
			dto.setBeginBalance(vo.getBeginBalance());//现金的期初余额
			dto.setThingEndBalance(vo.getThingEndBalance());//现金等价物的期末余额
			dto.setThingBeginBalance(vo.getThingBeginBalance());//现金等价物的期初余额
			dto.setCashIncrease(vo.getCashIncrease());//现金及现金等价物净增加额
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setCstId(vo.getCstId());//客户ID

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list List<FilFinanceCashDTO>
	 * @return List<FilFinanceCashVO>
	 */
	public static List<FilFinanceCashVO> toVOList(List<FilFinanceCashDTO> list) {
		List<FilFinanceCashVO>  voList = new ArrayList<FilFinanceCashVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (FilFinanceCashDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<FilFinanceCashVO>
	 * @return List<FilFinanceCashDTO>
	 */
	public static List<FilFinanceCashDTO> toDTOList(List<FilFinanceCashVO> list) {
		List<FilFinanceCashDTO>  dtoList = new ArrayList<FilFinanceCashDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (FilFinanceCashVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
